{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "039c14d3-1121-4594-802d-6751cf26f1db",
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "import sys\n",
    "sys.path.append('../')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ddb66339-59ee-4762-bc89-c7365755e2e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "from dataset import CANDataset\n",
    "import torch\n",
    "from torchvision import transforms, datasets\n",
    "import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.manifold import TSNE"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "99775245-06c7-441c-b8c5-8b215d232d1a",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_dataset = CANDataset(\n",
    "    root_dir='../../Data/TFrecord_w29_s15/1/',\n",
    "    window_size=29, is_train=True)\n",
    "# train_dataset.total_size = 1000\n",
    "train_sampler = None\n",
    "train_loader = torch.utils.data.DataLoader(\n",
    "    train_dataset, batch_size=256, shuffle=False,\n",
    "    num_workers=2, pin_memory=True, sampler=train_sampler)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "af01c97c-a0a8-4e56-ad75-26f2029f76df",
   "metadata": {},
   "outputs": [],
   "source": [
    "val_dataset = CANDataset(\n",
    "    root_dir='../../Data/TFrecord_w29_s15/1/',\n",
    "    window_size=29, is_train=False)\n",
    "val_loader = torch.utils.data.DataLoader(\n",
    "    val_dataset, batch_size=2048, shuffle=False,\n",
    "    num_workers=8, pin_memory=True, sampler=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97b34f7f-4a09-47ba-83f2-d476ae525290",
   "metadata": {
    "tags": []
   },
   "source": [
    "## Baseline Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8b408a51-d1ef-4650-8f08-3ebf0452014e",
   "metadata": {},
   "outputs": [],
   "source": [
    "from networks.inception import SupIncepResnet\n",
    "from networks.simple_cnn import BaselineCNNClassifier\n",
    "from networks.resnet_big import SupCEResNet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "824f41c2-b8b6-4665-83fb-f28ef53e0bd3",
   "metadata": {},
   "outputs": [],
   "source": [
    "baseline_model = SupIncepResnet(num_classes= 5)\n",
    "# baseline_model = BaselineCNNClassifier(n_classes=5)\n",
    "# baseline_model = SupCEResNet(num_classes=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9ae05a29-e11d-4070-9098-bb12b2fcfc6b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# model_path = '../save/smallresnet18.ce1_gamma0_lr0.001_bs256_50epochs_051822_100142_cosine/models/ckpt_epoch_50.pth'\n",
    "model_path = '../save/inception1_gamma0_lr0.001_bs256_50epochs_092622_152836_cosine/models/ckpt_epoch_10.pth'\n",
    "ckpt = torch.load(model_path)\n",
    "state_dict = ckpt['model']\n",
    "baseline_model.load_state_dict(state_dict=ckpt['model'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "bf1e01ed-6182-4d49-a82e-394b384044ef",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 162/162 [00:49<00:00,  3.29it/s]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "total_pred = np.empty(shape=(0), dtype=int)\n",
    "total_label = np.empty(shape=(0), dtype=int)\n",
    "total_embs = np.empty(shape=(0, 128), dtype=float)\n",
    "\n",
    "baseline_model = baseline_model.cuda()\n",
    "baseline_model.eval()\n",
    "with torch.no_grad():\n",
    "    for images, labels in tqdm.tqdm(val_loader):\n",
    "        images = images.cuda(non_blocking=True)\n",
    "        embs = baseline_model.encoder(images)\n",
    "        outputs = baseline_model(images)\n",
    "        _, pred = outputs.topk(1, 1, True, True)\n",
    "        pred = pred.t().cpu().numpy().squeeze(0)\n",
    "        embs = embs.cpu().numpy()\n",
    "        total_embs = np.concatenate((total_embs, embs), axis=0)\n",
    "        total_pred = np.concatenate((total_pred, pred), axis=0)\n",
    "        total_label = np.concatenate((total_label, labels), axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2986e43e-037c-4262-9e65-3b6ec52c0776",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "c5c9407d-07fa-476b-b13a-0d146e0ec878",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'fnr': array([0.00390982, 0.24860734, 0.22866444, 0.08980217, 0.13045369]),\n",
       " 'rec': array([0.9999609 , 0.99751393, 0.99771336, 0.99910198, 0.99869546]),\n",
       " 'pre': array([0.99909176, 1.        , 0.99957288, 0.99989427, 0.99980652]),\n",
       " 'f1': array([0.99952614, 0.99875542, 0.99864225, 0.99949797, 0.99925068])}"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from utils import cal_metric, draw_confusion_matrix\n",
    "cm, results = cal_metric(total_label, total_pred)\n",
    "results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "a38ba641-81e4-4002-bd6a-8644a3573266",
   "metadata": {},
   "outputs": [],
   "source": [
    "classes = ['Normal', 'DoS', 'Fuzzy', 'Gear Spoof', 'RPM Spoof']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "009af778-b4eb-4167-abfe-875accb09685",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 720x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw_confusion_matrix(cm, classes, save_dir='../figures/confusion_matrix_ce.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "8ce36f5d-f240-49ab-99ad-6aa7aab76e44",
   "metadata": {},
   "outputs": [],
   "source": [
    "classes = ['Normal', 'DoS', 'Fuzzy', 'gear', 'RPM']\n",
    "colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728','#9467bd',]\n",
    "n_classes = len(classes)\n",
    "\n",
    "def plot_embeddings(embeddings, targets, xlim=None, ylim=None):\n",
    "    plt.figure(figsize=(10,10))\n",
    "    for i in range(n_classes):\n",
    "        inds = np.where(targets==i)[0]\n",
    "        plt.scatter(embeddings[inds,0], embeddings[inds,1], alpha=0.5, color=colors[i])\n",
    "    if xlim:\n",
    "        plt.xlim(xlim[0], xlim[1])\n",
    "    if ylim:\n",
    "        plt.ylim(ylim[0], ylim[1])\n",
    "    plt.legend(classes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "0a1c21db-8bfd-4d52-b6e3-54176f36d627",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "np.random.seed(100)\n",
    "indices = np.empty(shape=(0), dtype=int)\n",
    "num_samples = 2000\n",
    "for c in range(n_classes):\n",
    "    idx_c = np.where(total_label==c)[0]\n",
    "    idx_c = np.random.choice(idx_c, num_samples, replace=False)\n",
    "    indices = np.concatenate((indices, idx_c), axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "cd8ff9f4-af70-482b-b576-0f920aaa28ad",
   "metadata": {},
   "outputs": [],
   "source": [
    "total_embs /= 10**18"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "a08726bd-d6b0-4d01-9696-33317bdb7aa6",
   "metadata": {},
   "outputs": [],
   "source": [
    "tsne = TSNE(n_components=2, learning_rate='auto', init='random', n_jobs=-1, perplexity=40)\n",
    "new_embs = tsne.fit_transform(total_embs[indices])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "f72cfc20-f19d-47f8-903f-683f0d31dc69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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I95y4TKKv/0B9nzhb3g6azFNcVbEioDLPUsvJeEaHMfgWUvVtwREy3sQLfHBWLd1A+3pODec30VHOmqjkC1WaU3FuGljF3f9YCcD+TJ+aFnamqIchJy9KM2Gpa0KVCKnSAFLRGQOSa1bx+qP/Br883c48NweDjctoHDD9bSadq514OmDOfJln4VpjwuWZUgn43zwdav5h8f2smV/FotldXsTlcASc11Caxkp+WSLVd51+XLWL2nlN288d+L4Hs1SiZwZY+3sOYjhsssus08++WS9hyEiMueMH7PTmopN3Dd++zeuP/dlz99xKKsQJTJFxpinrLWXHe8xzWCJiMwD441JAVqS3jGzUsczuQWEiNSedhGKiMwDk4/ZOZQt0ZqKqW2CSB1pBktEZJ7QrJTI7KEZLBEREZEaq0nAMsb8nTHmsDFm+6T72o0xDxpjnh/72FaLa4mIiIjMdrWawfoKcNNL7vsEsNlaew6weey2iIiIyLxXk4BlrX0EGHzJ3bcC9479/l7grbW4loiIiMhsN501WF3W2kMAYx8XTeO1RERERGaNuhe5G2PuMMY8aYx5sr+/v97DEREREZmy6QxYfcaYJQBjHw8f70nW2ruttZdZay/r7OycxuGIiIiIzIzpDFjfBm4f+/3twLem8VoiIiIis0at2jR8DXgMWGeMOWCM+SDwaeB6Y8zzwPVjt0VERETmvZp0crfWvucED11Xi9cXERERmUvqXuQuIiIiMt8oYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKWiIiISI0pYImIiIjUmAKW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",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_embeddings(new_embs, total_label[indices])\n",
    "plt.savefig('../figures/tsne_ce.png', dpi=300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "532e18c7-2069-49c2-82ae-7e695bbe9a26",
   "metadata": {},
   "outputs": [],
   "source": [
    "def change_state_dict(state_dict):\n",
    "    \"\"\"\n",
    "    Because state dict in distributed GPU is different\n",
    "    \"\"\"\n",
    "    new_state_dict = {}\n",
    "    for k, v in state_dict.items():\n",
    "        k = k.replace(\"module.\", \"\")\n",
    "        new_state_dict[k] = v\n",
    "    return new_state_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "538e52ab-e388-4a74-a55d-cacfdcba9322",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch.optim as optim\n",
    "from networks.classifier import LinearClassifier\n",
    "from networks.resnet_big import SupConResNet\n",
    "\n",
    "model = SupConResNet('resnet18')\n",
    "classifier = LinearClassifier(n_classes=5, feat_dim=128)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "2f798662-da1f-4843-b713-d294e53189cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "save_path = '../save/SupCon.resnet18.ce1_lr0.05_0.01_bs512_200epoch_temp0.07_052122_214019_cosine_warm/'\n",
    "ckpt_epoch = 200\n",
    "# model_path = f'{save_path}/last.pth'\n",
    "model_path = f'{save_path}/models/ckpt_epoch_{ckpt_epoch}.pth'\n",
    "ckpt = torch.load(model_path)\n",
    "state_dict = ckpt['model']\n",
    "state_dict = change_state_dict(state_dict)\n",
    "model.load_state_dict(state_dict=state_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "a9d338db-2fe4-4158-b26e-265409e8ac5e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class_model_path = f'{save_path}/models/ckpt_class_epoch_{ckpt_epoch}.pth'\n",
    "# class_model_path = f'{save_path}/last.pth'\n",
    "ckpt = torch.load(class_model_path)\n",
    "state_dict = ckpt['model']\n",
    "classifier.load_state_dict(state_dict=state_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "7aa6d1d2-348f-4f65-b21e-afbf9fc1f075",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 162/162 [00:48<00:00,  3.36it/s]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import tqdm\n",
    "total_pred = np.empty(shape=(0), dtype=int)\n",
    "total_label = np.empty(shape=(0), dtype=int)\n",
    "total_embs = np.empty(shape=(0, 128), dtype=float)\n",
    "\n",
    "model = model.cuda()\n",
    "classifier = classifier.cuda()\n",
    "model.eval()\n",
    "classifier.eval()\n",
    "with torch.no_grad():\n",
    "    for images, labels in tqdm.tqdm(val_loader):\n",
    "        images = images.cuda(non_blocking=True)\n",
    "        embs = model.encoder(images)\n",
    "        outputs = classifier(embs)\n",
    "        _, pred = outputs.topk(1, 1, True, True)\n",
    "        pred = pred.t().cpu().numpy().squeeze(0)\n",
    "        embs = embs.cpu().numpy()\n",
    "        total_embs = np.concatenate((total_embs, embs), axis=0)\n",
    "        total_pred = np.concatenate((total_pred, pred), axis=0)\n",
    "        total_label = np.concatenate((total_label, labels), axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "76ae0143-cf32-4df8-9c7c-1d8b9e6b2611",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['0.0010', '0.0046', '0.0504', '0.0528', '0.0483']\n",
      "['1.0000', '1.0000', '0.9995', '0.9995', '0.9995']\n",
      "['0.9997', '1.0000', '1.0000', '1.0000', '1.0000']\n",
      "['0.9999', '1.0000', '0.9997', '0.9997', '0.9997']\n"
     ]
    }
   ],
   "source": [
    "from utils import cal_metric\n",
    "cm, results = cal_metric(total_label, total_pred)\n",
    "for key, values in results.items():\n",
    "    print(list(\"{0:0.4f}\".format(i) for i in values)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "9213706d-d8b5-4953-8510-80cd6dfddb4b",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 720x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "classes = ['Normal', 'DoS', 'Fuzzy', 'Gear Spoof', 'RPM Spoof']\n",
    "draw_confusion_matrix(cm, classes, save_dir='../figures/confusion_matrix_supcon.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "f9c8b370-3dce-4e33-9d49-0eca56765f46",
   "metadata": {},
   "outputs": [],
   "source": [
    "total_embs[indices] /= 10**18"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "09368517-48da-49cd-922e-961b5f8b28e9",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "tsne = TSNE(n_components=2, learning_rate='auto', init='random', n_jobs=-1, perplexity=40)\n",
    "new_embs = tsne.fit_transform(total_embs[indices])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "7f920609-23f5-4e9e-b129-128377015f56",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAI/CAYAAACrl6c+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACPn0lEQVR4nOzdeZxc1X3m/8+599ba1ataau0SYhECAWL1CsHBYGKbeIkTbGcItjNDvI8zzuLMTDxJJp4kDhNn7NjJ+DdeSOKxHU+84TgELBswAccgA0JIapCE1la3eq+qrvXee35/3O5WS0hCS3VXVffz5qVXd1dX1z0tulVPnfM932OstYiIiIhI7Tj1HoCIiIjIfKOAJSIiIlJjClgiIiIiNaaAJSIiIlJjClgiIiIiNaaAJSIiIlJjXr0HMFN3d7ddu3ZtvYchIiIi8pK2bNkyZK1dfKLPNVTAWrt2LU888US9hyEiIiLykowx+072OS0RioiIiNSYApaIiIhIjSlgiYiIiNRYQ9VgiYiIyOmrVqscPHiQUqlU76HMa8lkkpUrVxKLxU77axSwREREmtTBgwdpbW1l7dq1GGPqPZx5yVrL8PAwBw8e5Lzzzjvtr9MSoYiISJMqlUosWrRI4WoWGWNYtGjRGc8SKmCJiIg0MYWr2Xc2f8cKWCIiInLWjDF89KMfnf747rvv5g/+4A/mdAw33nhjw/XRVMASERGRs5ZIJPjmN7/J0NDQWX297/s1HlFjUJG7iIiInDXP87jrrrv41Kc+xSc+8YljPrdv3z7e8573MDg4yOLFi/nSl77E6tWrede73kVXVxdPPvkkV111FcPDw6RSKXbu3Mm+ffv40pe+xD333MNjjz3Gy172Mr785S8D8L73vY/HH3+cYrHI2972Nv7wD/+wDt/x6dEMloiIyAKx4/A4n3rgOX7rG0/zqQeeY8fh8Zo87gc+8AG+8pWvMD5+7ON98IMf5Nd+7dfYunUrv/qrv8qHP/zh6c8999xz/OAHP+B//s//CcDo6Cg//OEP+dSnPsVtt93Gb/7mb/Lss8/yzDPP8NRTTwHwiU98gieeeIKtW7fy0EMPsXXr1pqMfzYoYImIiCwAOw6P8/mHX2C8WGVZe5LxYpXPP/xCTUJWW1sbv/Zrv8anP/3pY25/7LHHeOc73wnAHXfcwSOPPDL9uV/+5V/Gdd3pj2+77TaMMVx22WX09PRw2WWX4TgOl156KXv37gXgH/7hH7jqqqu48sorefbZZ9m+ffs5j322KGCJiIgsAPdtG6A9FaM9FcMxZvr9+7YN1OTxP/KRj/CFL3yBiYmJk95n5m68lpaWYz6XSCQAcBxn+v2pj33f54UXXuDuu+9m8+bNbN26lTe84Q0N3WBVAUtERGQBODRWpDV5bOl1a9Lj0FixJo/f1dXFr/zKr/CFL3xh+rZXvvKVfO1rXwPgK1/5Cq9+9avP+vGz2SwtLS20t7czMDDAP//zP5/zmGeTApaIiMgCsKIjRa507I69XMlnRUeqZtf46Ec/esxuwk9/+tN86Utf4vLLL+fv/u7v+F//63+d9WNfccUVXHnllVx66aW85z3v4VWvelUthjxrjLW23mOYds0119hG62MhIiLSqHbs2MGGDRtO776TNVjtqRitSY9cyWe8WOWuG85jw7L2WR5p8zvR37UxZou19poT3V8zWCIiIgvAhmXt3HXDebSnYhweL9GeiilczSL1wRIREVkgNixrV6CaI5rBEhEREakxBSwRERGRGtMSoYhIjfWO9PL1nV/np/0/JV/N0xpv5dqea7n94ttZ37W+3sMTkTmggCUicgZ6R3rZvH8zffk+lmeWc9Pqm44JTb0jvXz6Z59m99hu8tU81lr6cn18b+J7/Nvhf+PDV32Y1533ujp+ByIyFxSwREROYWagijtxjhSPsDKzkqUtS8mWs9zz7D3ceemd0yHr6zu/zs6RnYyXxzEYQkIslmJQZH9+P7/z8O/w/577f/zWtb+l2SyZF1zX5bLLLqNareJ5HnfeeScf+chHcJyTVyEVCgX+w3/4D2zduhVrLR0dHdx3331kMpk5HPnsUsASETmBqWW+hw4+BEAqlqJYLeI5HkvSSxgpjfDC+Av05ft4YuAJLu66mO5UN5v3b2bCn6Aclk/4uCEhP+n/CX/yb3/C773s9xSypOmlUqnpw5iPHDnCO9/5TsbHx/nDP/zDk37N//pf/4uenh6eeeYZAHp7e4nFYnMx3DmjgCUiC97xs1RjlTF2Du9krDRGOYiC0nh5HNdxiZkYW/q34DkeoQ0pVosEBBzMHmTX2C5ylRyn08B5y5EtfL3363z8FR+f7W9PZM4sWbKEz3/+81x77bX8wR/8AeVymfe973088cQTeJ7HX/zFX/Ca17yGw4cPs2bNmumvW79+/r3QUMASkQWtd6SXe569h7Z4GxOVCR4aeIgJf4KkmyTv5wFIuskoTPlFqqbKRG6CtW1rmfAnCAgo+2V2je/CcmYnY2zeu5nb16vwXeZQ/zbYcS+MH4D2VbDhNli6saaXWLduHWEYcuTIEf7+7/8egGeeeYadO3dyyy238Nxzz/Ge97yHW265hf/3//4fN910E3feeScXXnhhTcdRb2rTICIL2ub9m2mLt1EJKvzsyM9wjYvBUKwePQC3GlbxrY/FEtiAwAYMF4cZKYyQq+Qoh+UzDlcABb/A5v2ba/ntiJxc/zZ49DNQHIO2FdHbRz8T3V5jU7O4jzzyCHfccQcAF198MWvWrOG5555j06ZN7Nmzh9/+7d9mZGSEa6+9lh07dtR8HPWkGSwRWdD68n0sbVnKloEthDYk5aWIB3EKYWG6SN23Rw/IDQlxcBitjJ7ztau2ys6Rnef8OCKnZce9kOyAVEf08dTbHffWdBZrz549uK7LkiVLTrlcnslkeOtb38pb3/pWHMfh+9///mmfq9gMNIMlIgtO70gvn3vqc/zXR/4rh/KHOJA9wGBhkGpYZbQ8ih9Gs1Uh4Qm//mS3n6m4iZOr5GryWCIvafwAJNuOvS3ZFt1eI4ODg7z3ve/lgx/8IMYYbrjhBr7yla8A8Nxzz7F//37Wr1/Pv/7rvzI6Gr1IqVQqbN++/ZiarPlAM1gisqDMrLla2rKUaljlif4nKPrRkmApKM3ZWGJOjExs/mxLlwbXvipaFpyauQIoZaPbz0GxWGTTpk3TbRruuOMO/tN/+k8AvP/97+e9730vl112GZ7n8eUvf5lEIsHu3bt53/veh7WWMAx5wxvewC/90i+d0zgajQKWiCwo0zVXYYUtA1vIVXJUwyqBDSj5cxeuIFoiXJxaPKfXlAVsw21RzRVEM1elLJTG4Ko7zulhgyA46eeSySRf/vKXX3T7r/3ar/Frv/Zr53TdRqclQhFZUPryfZSDMk8feZqyXyYTy2CtpRpU8YyHh4eZ/G8mZxb+ufStz3GXEZk9SzfCKz8UzWBlD0VvX/mhmu8ilIhmsESk6bzUcTWnsjyznEcOPULCTZDwEgAYYwhsQEhIzMQwNipuN5jp3YG1qruaKe7EqQSVmj+uyEkt3ahANUc0gyUiTWWqhipbzh5zXE3vSO9pff1Nq29itDRKoVrgUO4QvSO95Mo5HBP9c1i11ekwdTatF85E3ImzPLN8Vq8hIvWhGSwRaSpTNVRtiWg31NTbzfs3T89iHT/DdX77+ewe3z3dqT0MQ/YX9uPgYDDEvWgmaeaM1VxwHIebVt80Z9cTkbmjgCUiTWWqb9VMmXiGvnwfcOwuwZgT44G9D3BP/h66Ul14xmOwNDhdb+UaN+rWPrn6d3zd1WxKOAntIBSZxxSwRKSpLM8sJ1vOTs9cDRWHeHLgSQaLg9z4tRvxrT8drgaLgwQ2wBjDYGEQgJiJEYQBFV5c+2SxczKL5eERd+Osyqw6ZuZNROYPBSwRaQpTy347hnfQl+/jgs4LSHtpHu17lNHSKA4OrucyUZ0gV8nhOi6ZWIaKX4lmrBwPay2FsHDKgvXZDlcODotbFtPitVAMitMzbyLNynVdLrvssumPv/3tb7N27dr6DahBKGCJSEOaGaiOFI4wXBpmSSo6emN/dj/Pjz2PMYaEkyDpJom5MVzHJSyHhITY0JItZ6c7slfCxtitt6ZtDYtSi7DWMloe5bpl19V7SCLnJJVK8dRTT9V7GA1HAUtEGsLMwvRCpcBzY89RDaqMV8Yp+kVCQo4UjkzPMLm4hDakGBSx1pL0klSDY3cABpy8AWK9TFQn6Ep2ka/k8YynIneZl9auXcsTTzxBd3c3TzzxBL/1W7/Fgw8+yOtf/3r6+qJZ2xdeeIFPf/rT/PjHP+aJJ54A4NChQ3zwgx9k165dvO1tb+NNb3oTAL/6q7/K7bffzi/+4i/W7Xs6UwpYIjLrTtS3Cpi+Le7GGZgYYFXrKmJOjMcHHiewUTgq+IXpUDVz+c4Yg7VRzVQ5LDNeGW/4nlIxJ0apWmKkNELMiXHX5Xep/krm1Ln0kDuZqaNyAM477zy+9a1vnfS+3//+9wHYsmUL7373u3nzm9/MnXfeCcC+fft43etex7ve9S727t3Lpz71Kd70pjcxPj7Oo48+yj333HNO45xrClgiMqumdvUFNmBgYoCtg1v5/p7v053q5uKui1naspRH+x4lX8nTk+5h+/B2Cn6Balg9ZT2Ub/1jCtKrQTXqjN6gXFxSboqYG+PW826tyRObyJk4/hzOqR5yd1565zn9LJ7pEuHQ0BB33HEH//AP/0B7ezsApVKJX/7lX+av/uqvWLNmDWvWrOEDH/gAR44c4Zvf/Ca/9Eu/hOc1V2RprtGKSNPZvH8zgQ3YNbqLhJugK9nF3vG9jJfHWdexDsc4VIIKjnF4YN8DjFXGTvuxj9nxZ2AOW1idsbZEG93Jbla2reT9m95f7+HIAnQ6PeRqxfM8wjBari+Vjp7xGQQBb3/72/n4xz/Oxo1HO8q/973v5a1vfSuvfe1rp2+74447+MpXvsLXvvY1vvjFL9Z0fHNBAUtEZlVfvo+BiYHpo2kK1QIT1QkCG/Cj/T9iSXoJh3KHmPAnzngH31S9lYeHM/nfbBxpUwvLWpaxtn0ta9rW1HsoskC9VA+5Wlq7di1btmzhF37hF/jHf/zH6ds/9rGPcfnll/P2t799+rbPfvaz5HI5Pvaxjx3zGO9617u47rrrWLp0KZdeemnNxzjbdFSOiMya3pFeDuUP0Tvay1BxiJHiCP0T/WDAMQ7jlXH2Z/dT9Itn3R7BYHAcZ/oswUa0KLGIK5dciWtcFbVL3SzPLCdfyR9zW76Sn5Xjmv7bf/tv/Mf/+B+5/vrrcV13+va7776b+++/n02bNrFp0ya++93vcvfdd/PMM89M3/Y3f/M3APT09LBhwwbe/e5313x8c0EzWCJyTk5WNDtV77EktYQ9zh6KfpGR0ggJL0HCTTBRmcBzPUp+6ax2+7nGBRsVvjdKC4YT6Un10JHsoC3RxlsufIvqrqRublp9E/c8GxWKZ+IZ8pU82UqWt1z4lnN63Hw+/6Lbrr/+ep577rkX3W7ti19InWxnYKFQ4Pnnn+cd73jHOY2vXjSDJSJn7VQHL0/Ve6xpX8PVS67GMdEsUxAGLE4tJu7FSbgJfM68MN1gCG1IQOPOWkEUrq5bdh2fePUneP+m9ytcSV2t71rPnZfeSVuijf6JftoSbedc4D5bfvCDH3DxxRfzoQ99aLoQvtloBktEjnEm27hPVTTbl+8j5sR46MBDHMofohSUor5VfpGx8hieiWavzkTCSRCEwVmFsrnm4dGR7GjYJzBZmNZ3rW+Kn8fXvva17N+/v97DOCcKWCIL1Ml6U51qG/fxX7NjeAfdqW4e73+cXCVHa7yVtW1rp3tb/euBfyXn5ygHZRycaOaJkEK1wJLUEvbl953RmCthZdaPsjlXrnFJeSmWtizl51f/fFM8mYlI7SlgiSxAJ+uHk3STJ52RgqPhK+bEeOTQI+wZ34OxhqXppcS8GPuz+9k5vJPVbatZ0bKCnJ+jUI0ahTrGid7iUAkrHC4enl42PF2NHq4gClgd8Q7KflkF7SILmAKWyAJ0/NJeJaywN7uXfdl9XNhxIes61tGd6gaObuOe+ppKWGHr4FYSboK4iTMRTDBQHAALcTeO67hUggpbh7dONwt1TFTuGRJiMMSdOC1eCxbLWHkMi8UzXkM3Cj0dBkM6lqYclrlx1Y2avRJZwBSwRBaA45f2do7s5KLOiwAYKg7x9JGniTtxYk6MfCXP00ee5oolV9Cd6iZfyRN34/xw/w+x1pKr5miJtRDYIGqvYC1Fv4hjHDKJDEviSwgJCW2IsYaYEztmlspGW/+i5T5rp2elmj1cAXQluliWWcZYeYzb199e7+GISB1pF6HIPHeinX6Hcoc4kDsAwAvjL5BwExjH0JPuwRKd77dnbA/ZcpaD+YMMTAwQd+LE3ThFv8iRiSMcyh8CA57rRS0TgM5EJ57j0RpvJe2l8a1PJazgW/+YAFUOy+SreSb8ibr8ncyGlJOiNdGKwfCKZa/Q7JUsGAMDA7zzne9k3bp1XH311bziFa845XmE5+J73/seV155JVdccQWXXHIJ//t//++aX+Md73gHl19+OZ/61KfO6XE0gyUyz51op98FHRewa3QXnYlOsuUscTdOxa9wxeIrANg2tI2dIzvZm92LH/osTi7mvPbz2JfbR8yJkavmwEDCTWBDS8VUMNYwVByiI9HBxYsuZqw0hjEGj2jprxnqp85WT6qH61deT8JNkK1kuf1izV7JwmCtnT6w+f/+3/8LRIc2f/e7363JY1trcZxoLqharXLXXXfx05/+lJUrV1Iul9m7d+85X2em/v5+Hn30UfbtO7MNOCeiGSyRea4v30cmnjnmtlVtq1ieWU5bIqqpOlI4Qjko80L2BcbKY2QrWTzHY1l6GQCDpUF6R3tZ07qGTCxDJaxQCSq4xqU92Y5rXHzrM1Yew3VcJioTVMMqDg4dyQ7SXpqUm8KbR6/pXFxWZVZxQfsFrGpbRTWsNnRfIZHZ8MMf/pB4PM573/ve6dvWrFnDhz70ISA6e/C3f/u3ufbaa7n88sunZ5zy+Tw33XQTV111FZdddhnf+c53ANi7dy8bNmzg/e9/P1dddRUHDhyYftxcLofv+yxatAiARCLB+vXR79q73vUu3vve93L99ddz0UUX8b3vfQ+IzkF897vfzWWXXcaVV17Jj370o1Pefsstt3DkyBE2bdrEj3/843P6u5k//9qJyAktzywnW85Oz2ABHMgdIF/Ns2N4B2EYEnNitMZbKVVLPD76OIEN6En3kIwlScfSVPwKpaDErvFdjJfHcXDAQDWsMl4apzXeSrfbTTkoU/JL7BrbRXeqm7SXpn+if7pGK+bE8MPmr7UyGJZllpHyUly++HKqYZU/fvUf13tYIi+p2NtL/v4HqPb1EVu+nMwtN5Naf/YvCJ599lmuuuqqk37+C1/4Au3t7Tz++OOUy2Ve9apXccstt7Bq1Sq+9a1v0dbWxtDQEC9/+cunO7r39vbypS99ic997nPHPFZXVxe/+Iu/yJo1a7jpppt44xvfyDve8Y7pGa69e/fy0EMPsXv3bl7zmtewa9cuPvvZzwLwzDPPsHPnTm655Raee+65k97+3e9+lze+8Y089dRTZ/13MkUzWCLz3E2rbyJbyZItZwltyL7sPrYObmVJagm5So6Ul8IPffon+tmb20uummOiOsFoaZS943unD2ceL4+zL7uPsfIYAcH0kReO41ANqiTcBNevvJ5bz7uVa5deS9EvkqvkyFfzmMn/SuGZNRZtRB4ecSdOYAOuWHIFCTcxK2e5idRasbeXkS9+iSCbxVu6lCCbZeSLX6LY21uza3zgAx/giiuu4NprrwXg/vvv52//9m/ZtGkTL3vZyxgeHub555/HWst//s//mcsvv5zXvva1HDp0iIGBASCaAXv5y19+wsf/P//n/7B582auu+467r77bt7znvdMf+5XfuVXcByHCy+8kHXr1rFz504eeeQR7rjjDgAuvvhi1qxZw3PPPXfS22upZjNYxhgXeAI4ZK19ozGmC/g6sBbYC/yKtXa0VtcTkdOzvms9F3ZcyFd7vxrNPhmHC9ouYE37GnaP78YxDuWgjDFR+wTf+JRsibHKWLQTcLI56BQXd3pnYK6aw2BIOAmu6rlqurVDOShzKH+IXCU3/bVTOwkNpmnrsaZm7lZmVuK6LnEnXpOz3ETmQv7+B3Db2nDbotnsqbf5+x8461msSy+9lH/8x3+c/vizn/0sQ0NDXHPNNUBUR/WZz3yG173udcd83Ze//GUGBwfZsmULsViMtWvXUipFL8BaWlpOec3LLruMyy67jDvuuIPzzjuPL3/5ywAYY465nzHmhGcfTo1rttVyBus/AjtmfPwxYLO19kJg8+THIjIHekd6+dxTn+O/PvJf+U8//E98ZedXaIu1cXHnxRgMu7O72TWyi9Z4K0OlIYwx5Co5JvyJ6fAT2ACLfdFZf67jEthgelegxYKB3tFehopDDBWH+Je9/0K2kgUmQ8kMzRquAGJOjNVtq0nH0xhrVHMlTaXa14eTObYe08lkqPb1nfVj/vzP/zylUom//uu/nr6tUChMv/+6172Ov/7rv6ZarQLw3HPPMTExwfj4OEuWLCEWi/GjH/3otIrK8/k8Dz744PTHTz31FGvWrJn++Bvf+AZhGLJ792727NnD+vXrueGGG/jKV74yfe39+/ef8vZaqskMljFmJfAG4BPAf5q8+U3AjZPv3wM8CPxuLa4nIid3fJf2b/V9i6JfJO2lGc4NU/SLhDbkkb5HePXyV7PD30HVr0aBKYTQnvrw5EpYedFtpaDEwdxBipXi9C7D42e+mpnBEDdxetI9XNx1Ma5xFayk6cSWLyfIZqdnrgDCfJ7Y8rNf4jbG8O1vf5vf/M3f5JOf/CSLFy+mpaWFP/uzPwPg3//7f8/evXu56qqrsNayePFivv3tb/Orv/qr3HbbbVxzzTVs2rSJiy+++CWvZa3lk5/8JL/xG79BKpWipaVlevYKYP369fzcz/0cAwMD/M3f/A3JZJL3v//9vPe97+Wyyy7D8zy+/OUvk0gkTnp7LZlaTJMZY/4f8CdAK/Bbk0uEY9bajhn3GbXWdp7qca655hr7xBNPnPN4RBaCk50l+Kc//VNGSiN0Jbs4r+08/mXfv2BCQyEovKhdQle8i3w1T9VWp/tfJZzEMbVSp7OkNzVLFRKSdtMUgsIp798sDAbPeCxKLqIr1UVPSxSwTnUAtshc2rFjBxs2bDit+07VYLltbTiZDGE+T5DN0vWed59ToXsjeNe73sUb3/hG3va2t83aNU70d22M2WKtveZE9z/nGSxjzBuBI9baLcaYG8/i6+8C7gJYvXr1uQ5HpOmdKDgd/2R+orMEP/2zT2OMYbg4TGeik7HSGJvHNlMOylSD6vRs0szANFqJyiKnPrbYFxWin+6SXszEKNsy5aB8Tt9/o7ig7QJS8RSvXvFq3r/p/fUejsg5S61fT9d73n3MLsL2t/1S04erRlWLJcJXAb9ojHk9kATajDF/DwwYY5ZZaw8bY5YBR070xdbazwOfh2gGqwbjEWlaJzuE+fjlqOObhx4pHOGJgSfwQ5+4G2eiMjHdPd2Gx9ZRzQxMtaqHCgkp2yhYBZz+4c2NKuNmCGxAV7JLBzbLvJJav35eBqqZS4WN4pwDlrX294DfA5icwfota+2/M8b8OXAn8KeTb79zrtcSme9O1HUd4Os7v053upsdwzvIV/MczB1kRWYF69rXMVYe4yeHf4If+BhjcIzDYGmQpJOcLkA3trY79xyceVNfdTyDobulm2uWXsPt62/XUqCInJXZbDT6p8A/GGN+HdgP/PIsXkukqZxsGbAv38fSlqXH3LcclPnJ4Z9wefflHMofwsGh7Jfpy/fxwvgL5Ct5HMeJmu3ZqEjdYimGRWImRsJLkHJTjFfHz3ncU8uLzbwT8FQ8PF6z5jX8xY1/Ue+hiEiTq2nAstY+SLRbEGvtMKC5dZHjnGoZMO7EefTQo1TC6Biaol/k8MRhrLX8W/+/0ZnopDXZSsEvMFAYIO2lCWyACc1024SZM0uBDWiPt4OlJgFrZq3WfJSIJfiNy3+j3sMQkXlAR+WIzLFTLQMeKR6JZqSMw6HiIUp+idCGtMRaGC2NMlYao7McbcZNuAmSXpJsNYtxDDEbNf8MwqM1UBbLoYlDc/9NNhkPj5gXozvRrSVBEakJHZUjMsdOdPhyJp7hp4d/ykhxBGssA8UBStXSdPuDieoEIdHSX8EvMF4eJ+EmWJxezJrWNcScGCEhgQ3wHI+YieHhzduZplry8MgkMnTGO7lu2XX1Ho5I03Fdl02bNrFx40Zuu+02xsbGgOhswFQqxaZNm7jkkkt473vfSxiG7N27F2MMv//7vz/9GENDQ8RiMT74wQ++6PEHBgZ44xvfyBVXXMEll1zC61//+pp/D9/4xjfYsGEDr3nNa2r2mApYInNseWY5+Up++uOhwhD/tOuf2J/fz7PDz9KX66PiV7DGTh9VA0w37iz6RQIbkK1kGS+Nc03PNbx86cvxnChQhTbE2mjn4NTXyskZY8h4GS7ovIDbL7693sMRaTqpVIqnnnqKbdu20dXVNX2QMsD555/PU089xdatW9m+fTvf/va3AVi3bh3f+973pu/3jW98g0svvfSEj//xj3+cm2++maeffprt27fzp3/6pzX/Hr7whS/wuc99jh/96Ec1e0wFLJE51DsSHSfz8MGHeeTgIzw/8jw/2v8jDhUOTR9LU7EVKrYSHUeDT0CAY5xj6p8841EJKxyaOMQP9/+Qol/k4s6LSXtpWmIt875W6lwYDA4OKSdFd7Kbla0rWZpZyoev+rCWB0XO0Ste8QoOHXpxWYLnebzyla9k165dQBTKNmzYwFRz8a9//ev8yq/8ygkf8/Dhw6xcuXL648svvxyABx98kBtuuIG3vOUtx8yQAXz1q1/lsssuY+PGjfzu7x49ROZEt//RH/0RjzzyCO9973v57d/+7Rr8LUx+zzV7JJEF7qUahM4sbn/ZspfRO9rLY32PRQctT840nSwQTRWww9EWCXEnjmtcxivj/HTgp6S9NI5xyFVy86IXVa25xgULSS9J0o1aWLxm9WvoSnbRP9GvcCULwtDBHHueHCQ3UqK1K8m6KxfTvbK1Jo8dBAGbN2/m13/911/0uUKhwObNm/mjP/qj6dve/va387WvfY2lS5fiui7Lly+n7wTnIn7gAx/g9ttv56/+6q947Wtfy7vf/W6WTx7v89Of/pTt27ezZs0abr31Vr75zW/yyle+kt/93d9ly5YtdHZ2csstt/Dtb3+b66677oS3f/zjH+eHP/whd9999/Qh1bWggCVSA6faGQhRYfsP9/+QuBNnaXopo5VRKkGFSljBxz+jpbyQkNCGJEyC0Ebvu7iMVcZm6btrfi1uC3EvTracpRyUaY23kvSSdKe6yZazLM+c/VlsIs1i6GCOpx7YTyLtkelMUC5UeeqB/Wy6efU5haxiscimTZvYu3cvV199NTfffPP053bv3s2mTZswxvCmN72JX/iFX2Dv3r0A3Hrrrfz+7/8+PT093H77yZfnX/e617Fnzx7uu+8+/vmf/5krr7ySbdu2AXDdddexbt06AN7xjnfwyCOPEIvFuPHGG1m8eDEAv/qrv8rDDz+MMeaEt7/5zW8+6+/9VBSwRM7SzBmrQ/lDLEkvOeHOwFJQIrABg4VB8uU824a34eAQc2JUbXTC/Nks5VXD6vT7U13U5cSqtkrSJMnEM5SDMu3xdjLxDNlylmwly1sufEu9hygy6/Y8OUgi7ZFIxwCm3+55cvCcAtZUDdb4+DhvfOMb+exnP8uHP/xh4GgN1onE43Guvvpq/uf//J88++yz3HvvvSe9RldXF+985zt55zvfyRvf+EYefvhhFi1ahDHHvjg1xnCyM5ZrcfbymVANlshZmJqxypazLG1ZykhphG2D23jowEP8cP8Pebz/ccpBma2DWwlswK7RXVSDKhUqWCwBAZWwck5jCGf8J6cWhAG5So4wDGmNtWKxtMZbaUu0vegYIpH5KjdSIp46dl4lnvLIjZRO8hVnpr29nU9/+tPcfffdVKvVl/4C4KMf/Sh/9md/xqJFi056nx/+8IcUCtEB8rlcjt27d0+fXfzTn/6UF154gTAM+frXv86rX/1qXvayl/HQQw8xNDREEAR89atf5ed+7udOevts0QyWyBnqHenlT3/6pwwXh0l5KQCGi8MU/SItlRbWdaxjrDjGD0Z/gG99hopDhDZkwp845nEUjOaOMQbP8cDAmvY1fOy6jylUyYLT2pWkXKhOz1wBVIo+rV3Jml3jyiuv5IorruBrX/sa119//Uve/9JLLz3p7sEpW7Zs4YMf/CCe5xGGIf/+3/97rr32Wh588EFe8YpX8LGPfYxnnnlmuuDdcRz+5E/+hNe85jVYa3n961/Pm970JoCT3j4bzFxPmZ3KNddcY6d2FIg0it6RXr7e+3W2Dm6lHJQpVosU/AJBEFAKSzjGwTUuQRhgjGFFZgVjlTGCMMA1LvlKHuOYY5b0pPZc3BMW9xsMLV4La9vWMl4Z51Ov+ZTClcwbO3bsYMOGDad135k1WPGUR6XoUy7451yDVS8PPvggd9999zHtHmbTif6ujTFbrLUnrIzXDJbIKfSO9PL7j/w+e8b3RG0TZuzmmxLaqMFnzMQwxjBQGCATz7CsZRmHcodwHVfhag6kY2ly1dwxt3l4OE7U4sI4hpcvf7nClSxY3Stb2XTz6mN2EW541fKmDFfNQAFL5DhTxes7R3by5MCTjFXGpg85PpmpA5Db4m1UwgqrW1dTCSrEnBhdqS72ZffN4Xew8MRMjPVd6xkuDjNWHiNfzhMQ0BpvpSvZRTqeZm3bWm5fr0aisrB1r2ydN4Hqxhtv5MYbb6z3ME5KAUtkhqni9dHSKM8OPTvd+uB0d/lVwgpxJ87zY89T8ksYTHRwMy4+L579knPn4JBwE1y79FqGikM8feRplqSW4BgHz/EYK49xVddV3L7+ds1eicicUcASmWHz/s0ENmD78PYzXtYLbUjZL+PjU7VVUrEUDo76U82iqf5hvvXZN76PVW2ruKDzAnaN7qKnpYcNiza8qOGryHxjrX1RuwKprbOpV1fAEplh58hOth7Zykh55Iy/Nu7GWZRYRM7P0eq2kq1kKQW12f4sJ+bgkI6l6Uh0cKR4hJgbY03bGt6z8T0KVbIgJJNJhoeHT9gTSmrDWsvw8DDJ5JnttlTAEiFaGvzfW/83Pz744xMWsp+OK7qvoL/YT6FYIFvJ6qDlWeYal5SXYmXrSoIwYEVmBX/86j+u97BE5tTKlSs5ePAgg4OD9R7KvJZMJo85D/F0KGDJgtc70stnnvwMPxv42VmHK8947BrfRcWvENpwuuhdZofBkIllWJFZgWtcPM/TcTeyIMViMc4777x6D0NOQJ3cZcHbvH8zI6URKkHlrGedfOszVBrCt76C1RxIuSm6U904OOQrebqSXdy0+qZ6D0tEZJpmsGTB68v3UfbLBDY453Dkh2d2cLOcPg+PzlQnm5ZsoiPewdbBrVRtlWuWXaMdgiLScBSwZMFbnlnOs0PPEtpzP7omsMEJu4nLuUt6SS5ZdAm/cflvKEyJSMPTEqEseOe3n89gcbAmZwMqXJ0Z17indb+4iWOx3LbuNoUrEWkKmsGSBa13pJeHDj5EzMRe+s5SE1Nd8RNuYvoMx2pYfVHAdXDAQMbLsKZtDRjYPb67TqMWETkzCliyoG3ev5m2eBvloFzvoSwIMRPDWotjHM5vP590LE3ZL4OJauGWpJbQX+hnvDxOwk2QclNYYykHZS5ffDl9+b56fwsiIqdFAUsWtL58HzEnRt7P13soc+alzlWcLQ4OgQ2iFgvxDGvb1pKOpdnSvwUMLEktIbQhi1OL6Ux0kq/mqQQVUl6KK5ZcQdyJszi9eM7HLSJyNhSwZEFbnlnOI4ceqfcw5oSLS8JNUAgKc35tgyHuxAkJuaDjAt6z8T3sHt9NX76Pa5ZdAxYGi4P05fu4oPMC0l4UvFpiLVzdczVxJ062kuUtF75lzscuInI2FLBkQbtp9U3cu/veBdG7KiCgHJTnfAbLYEi4Cda0rsFi+aNX/dFJC9V7R3rZvH/zMcGrElZYnF7MWy58iwrcRaRpKGDJgra+az2vWPYK7nvhPnJ+rt7DqTnPePjWnw5VAQHe5K+9z9l1rT+ZGDGsscd0w3dxcXCmr3/X5XedMiSt71qvECUi84IClix4t198OwOFAbYc3sJEOFHv4dSEM9mBxTMernEJbUjVVoFoJitu4oQ2PK3WFHETLe0ZDJ7jUQ7Kx3ydZ6J/RlriLaS8FNlSltCEdMQ7wEStGJa2LOVj131M4UlEFgz1wZIFb33Xej581Yd5/fmvnw4mzcwzHus710fBiuhcxKqtTneYn/q4LdZ2yq7zCZNgUWIR53ecT9JLkvbSrG1fi+u4xJ04SSeJa1zibpz2eDuhDXn1ilezJL2EC9ov4Bcv+EV+ftXPc+WSKxWuRGTB0QyWCFHI+vgrP85QaYifHPoJxbBY7yGdMYPBMx5xN86SliUMlYYIgoBsNTsdHC12+qDkuBdnibeE0fIoQXi0A73B4OGR8BIsaVlCvppndetqKkF0kPVU/6q4G8daS2hDAhvQ4rUQd+Ksbl8dtVuY6Gd5Zrlqp0RkQVLAEpnh4q6LqQZVnhp8iny1OVo3dMY78Zyo1mrquJ+R0gjnt5/Ps8PPEtgABweLxcHBNS6VoIJvfV627GXsGd9D2S8zWhqdvq9jHLpSXVy15CraEm3ctPom7nn2HtribazKrOKxw49hrWV5y3KKQZGR0ggrWlfQlmjjQxd+SIFKRBY8BSyRGW5afRMHcwe5YcUN7BjZwd7s3obeYejgUPAL0zNJPS09eK6HDS0jpREuXXQpW45soRpWp2euWmItlPwSjnHoTnYzVBiCOHQlu+if6MdgcIxDa6x1ujXC+q713HnpnWzev5l8Nc8rV7ySQ7lD5Ko5etI9fOjKD/G6815X778OEZGGoYAlMsPMIBFzY1yz9Bqe6H+Cvnzf9AxRIwWupJekPd7OSGkE17hcsugSRsujlIMyCZPAtz43rryRBw88iGMcWmItVIMqgQ3Y2L0RDHQmOzmQO0BLrIXORCdDpSGSbpKLuy7m9otvn56N0g4/EZHTp4Alcpzjg0TvSC+fefIzbOnfQjkoY62teYuDs+Hh0R5vpzvdzYQ/weLkYkbLo5zXdh5PDz5N3I2TLWdZ37me1ngrAAW/QEushasWXcW6jnX0T/Tz4as+zNd3fp2tg1vxXI9b1t7C7etvV5gSETkHClgiL2F913o+dOWH+OiDH2WsPEYlqBAnTtyNM14ZP2ZGyzMe1lpm/ldrLi4BATE3RtyNk3ATrMysxDEOuUqO7nQ3Vyy+gp0jOzHGTNdQxd04bYm26cfJlrMszyyfLvAXEZHaUcASOQ3ru9bz+nWvJ1vOHhNSHnjhAQaKA3jGo+gXsVjiXpyXL3s5z40+x0hphFy1dg1MDQZjDHET5+olV3PZkssAGCoM8cTAE2TiGUIbEnfjrG1fy52X3sn6rvX0jvRyz7P3AJCJZ8hX8jp6RkRkFjV/0x+ROXLT6pvIVrJky1lCG0YzQK3LuajzIla2rmR1+2ou6ryIK5dcyW9c8Rtct/Q6ulPdrMqsIukkT/s6MRMj5aZIOAlc3GM+l4llWJFZwQc3fZDOVOf0WOJunFWtq7i462L6J/ppS7RNhys4WlvWlmg74edFRKS2jLWNU7B7zTXX2CeeeKLewxA5qZln5S3PLOem1TcBvOi2qVmjT//s04yWRumb6MMPfCaqEwQEL1o6dHCIO3EWpRZxpHAEz/GwWNribRT9Igk3QSqW4o3r3njM45/ouiIiMjeMMVustdec8HMKWCKzZyoEfW/P91iSWkJXsotnh56lv9A/3fQz4SZIuAmu7bmWjmQH9++7n5JfwmBoTbSS9tJcuuhS1rSv4f2b3l/vb0lERCadKmCpBktkFs3ckThVv3VB5wUMFYbYObKTSljh8sWXMzAxwJKWJWTiGS5bdBlPDz1Ne6KdnnQPPekeXMedni0TEZHGp4AlMgemOqFDVGR+oiL0qeW+y5ZcxpsvfDO7x3dr+U9EpElpiVBkjqhmSkRkftESoUgDUCd0EZGFQ20aRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERE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gDWHFKJERKQulm6Ed30Htn0bHvwfMNRb3/HEMtGy4JRSNqq5mkfUaFRERGSh2Phm+OBP4W33QFudAo2TiHpcmckDo4tjUBqLCtrnEc1giYiILDRTtVoP/Tns3hw1J52LAi0nDl4cOldDtQyuF7VjuOqOpt0teDIKWCIiIgvR0o1w+z1RfdZ3PgCDO6Mdh9NH7dQqcDnRYzlxaF8JrT2w9PJo1uqVH5p3wWqKlghFREQWsqUb4U2fhfNujHb1xVujPlrnyktHDU/dWNQuomsdxJLRjFWqY16HK9AMloiIiCzdCDf9Pjz0SdjzULS7z7hQygEvtevQRPf1ErDsShjbC+UsGC/6XFiFWALWvCLqyj6PQ9VMClgiIiIyuWT4t9GS4Y57o7YJbgKG90D/01DOATaa3QqDKFClu6JZqjCA1/5hVNvVv+3YPlwrr11QwWqKApaIiIgcNfNsw5PZ9m14/POQOwytS+Hau452YT9RH64FSAFLREREzszGN8+rY21mg4rcRURERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxhSwRERERGpMAUtERESkxs4pYBlj/twYs9MYs9UY8y1jTMeMz/2eMWaXMabXGPO6cx6piIiISJM41xmsB4CN1trLgeeA3wMwxlwCvB24FLgV+Jwxxj3Ha4mIiIg0hXMKWNba+621/uSHPwFWTr7/JuBr1tqytfYFYBdw3blcS0RERKRZ1LIG6z3AP0++vwI4MONzBydvExEREZn3vJe6gzHmB8DSE3zqv1hrvzN5n/8C+MBXpr7sBPe3J3n8u4C7AFavXn0aQxYRERFpbC8ZsKy1rz3V540xdwJvBG6y1k6FqIPAqhl3Wwn0neTxPw98HuCaa645YQgTERERaSbnuovwVuB3gV+01hZmfOq7wNuNMQljzHnAhcBPz+VaIiIiIs3iJWewXsJfAQngAWMMwE+ste+11j5rjPkHYDvR0uEHrLXBOV5LREREpCmcU8Cy1l5wis99AvjEuTy+iIiISDNSJ3cRERGRGlPAEhEREakxBSwRERGRGlPAEhER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",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_embeddings(new_embs, total_label[indices])\n",
    "plt.savefig('../figures/tsne_supcon.png', dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f3370ad",
   "metadata": {},
   "source": [
    "## Rec-CNN results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a7df97aa",
   "metadata": {},
   "outputs": [],
   "source": [
    "from utils import cal_metric\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "0be3b251",
   "metadata": {},
   "outputs": [],
   "source": [
    "cm = np.array([ \n",
    "    [1, 0, 0.00089, 0, 0],\n",
    "    [0, 0.98, 0.015, 0.005, 0],\n",
    "    [0.0025, 0.0075, 0.83, 0.081, 0.079],\n",
    "    [0, 0, 0.035, 0.92, 0.041],\n",
    "    [0.00088, 0, 0.045, 0.11, 0.85], \n",
    "])\n",
    "cm = cm*int(1e5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "9fd77912",
   "metadata": {},
   "outputs": [],
   "source": [
    "recall = np.diag(cm) / np.sum(cm, axis = 1)\n",
    "precision = np.diag(cm) / np.sum(cm, axis = 0)\n",
    "f1 = 2*recall*precision / (recall + precision)\n",
    "\n",
    "total_actual = np.sum(cm, axis=1)\n",
    "true_predicted = np.diag(cm)\n",
    "fnr = (total_actual - true_predicted)*100/total_actual"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "dbe5752c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([ 0.08892086,  2.        , 17.        ,  7.63052209, 15.49687836]),\n",
       " array([0.99911079, 0.98      , 0.83      , 0.92369478, 0.84503122]),\n",
       " array([0.99663139, 0.99240506, 0.89643478, 0.82437276, 0.87628866]),\n",
       " array([0.99786955, 0.98616352, 0.86193916, 0.87121212, 0.86037614]))"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fnr, recall, precision, f1"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.7.10 ('torch')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  },
  "vscode": {
   "interpreter": {
    "hash": "ec8a7a313ab33d199c8aa698bb86bd912b8385ce4922a6e184e3f5edd5eb95f6"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
